package com.itheima.health.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.itheima.health.pojo.Member;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.time.LocalDate;
import java.util.Date;

/**
 * 会员持久层
 *
 * @author liuqi
 * @Date 2023/11/20
 */
@Mapper
public interface MemberDao {


    /**
     * 根据身份证号查询用户会员信息
     *
     * @param idCard 身份证号
     * @return 会员信息
     */
    Member findByIdCard(String idCard);

    /**
     * 新增会员信息
     *
     * @param member
     */
    void insert(Member member);

    /**
     * 查询会员指定日期、套餐的预定数量
     *
     * @param memberId  会员id
     * @param orderDate 预定时期
     * @param setmealId 套餐id
     * @return
     */
    Integer seleteByCondition(Integer memberId, String orderDate, Integer setmealId);

    /**
     * 根据id获取会员名称
     *
     * @param memberId 会员id
     * @return 会员名称
     */
    String findNameById(Integer memberId);

    /**
     * 查询日期之前的用户数量
     * @param endDate
     * @return
     */
    Long countByRegTimeBefore(@Param("endDate") String endDate);

    /**
     * 根据注册日期范围统计用户数量
     * @param startDate
     * @param endDate
     * @return
     */
    Integer getMemberCount(LocalDate startDate, LocalDate endDate);

    /**
     * 获取总会员数
     * @return
     */
    Integer getMemberTotalCount(LocalDate endDate);
}

